关于JSON.parse() 使用到问题

Unexpected token in JSON at position 0 

这样的错误,日志打印,字符串本身看上去没有任何问题,只是把字符串放到文本编辑器里,然后按键盘移动光标,发现字符串的第一个字符‘{’之前,确实有一个字符,但是肉眼看不见,这就非常神奇了 于是乎考虑这个字符是特殊字符,那么首先把这个字符拷贝出来,解析成ascii码试试 然后惊奇的发现,这个字符换算成十六进制是0xfeff 找了一圈。


发现了这个 http://www.169it.com/article/11324591921744705430.html 问题看上去是找到了,那么处理方式也就出来了 对每次接收到的响应字符串做一个特殊处理,判断下第一个字符,如果是非正常ascii码的,直接去除即可 添加解决代码如下:

let firstCode = resp.charCodeAt(0); if (firstCode < 0x20 || firstCode > 0x7f) { resp = resp.substring(1); // 去除第一个字符 console.log('response:' + resp); }